package com.hjq.controller;

import com.hjq.pojo.Result;
import com.hjq.utils.AliyunOSSOperator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.util.UUID;

/**
 * 图片上传
 */
@Slf4j
@RestController
public class UploadController {
    @Autowired
    private AliyunOSSOperator aliyunOSSOperator;
    /**
     * 文件上传接口，使用阿里云OSS存储方案
     *
     * @param file 上传的文件
     * @return 上传结果，包含文件访问URL
     * @throws Exception 文件上传异常
     */
    @PostMapping("/upload")
    public Result upload(MultipartFile file) throws Exception {
        log.info("upload接收的参数：{} ", file);
        String originalFilename = file.getOriginalFilename();
        // 生成随机文件名，防止文件名冲突
        String url = aliyunOSSOperator.upload(file.getBytes(), originalFilename);
        return Result.success(url);
    }

    // /**
    //  * 文件上传接口，本地存储方案
    //  *
    //  * @param file 上传的文件
    //  * @return 上传结果
    //  * @throws IOException 文件保存异常
    //  */
    // @PostMapping("/upload")
    // public Result upload(MultipartFile file) throws IOException {
    //     log.info("upload接收的参数：{} ", file);
    //     String originalFilename = file.getOriginalFilename();
    //     // 生成随机文件名，防止文件名冲突
    //     String newFilename = getRandomFileName(originalFilename);
    //     String path = "E:\\Code\\JAVA\\HeiMa\\AIWeb\\day04\\Web-Project\\tlias-web-management\\src\\main\\resources\\static";
    //     file.transferTo(new File(path + newFilename));
    //     return Result.success();
    // }

    public static String getRandomFileName(String filename) {
        String endName = filename.substring(filename.lastIndexOf("."));
        String randomName = UUID.randomUUID().toString().replaceAll("-", "");
        return randomName + endName;
    }
}
